perm filename LC4.BB[206,LSP]1 blob
sn#127498 filedate 1974-10-24 generic text, type T, neo UTF8
.BEGIN NOFILL
.VARIABLE CHW
.CHW ← CHARW
.TURN OFF "βα#\←∞↑↓∪"
.TURN ON "∂{%"
.TURN ON "/" FOR "α"
.AT "∂∂(" CH ")" ⊂ CHARW←CH}∂(2){CHARW←CHW ⊃
∂∂(48)%3compl%2 %3file%2 %2(%5FEXPR%2) ←
∂∂(80)%4prog%2 %2[%3z%2]
∂∂(153)%3eval%2 %5OUTPUT%2 %2. %2[%2 %2`%5DSK:%2' %2 %2. %2<%4a %3file%2 %2. %5LAP%2>%2]
∂∂(153)%3eval%2 %5INPUT%2 %2. %2[%2 %2`%5DSK:%2' %2 %2. %3file%2]
∂∂(153)%3inc%2[%5T%2, %5NIL%2]
∂∂(153)%3outc%2[%5T%2, %5NIL%2]
∂∂(91)%3loop%2 %3z%2 %2← %3errset%2 %3read%2[]
∂∂(153)%4if%2 %4at %3z%2 %4then%2 %3go%2 %3done%2 %4else if%2 %5T%2 %4then%2 %5NIL
∂∂(153)%3z%2 %2← %4a %3z
∂∂(153)%4if%2 %4a %3z%2 %4eq %5DE%2 %2∨ %2[%4a %3z%2 %4eq %5DEFPROP%2 %2∧ %4addd %3z%2 %4eq %5EXPR%2]%2 %4then%2
∂∂(185)%2[%4prog%2 %2[%3prog%2]
∂∂(267)%3prog
∂∂(283)%2← %2[%4if%2 %4a %3z%2 %4eq %5DE%2 %4then%2 %3comp%2[%4ad %3z%2, %4add %3z%2, %4addd %3z%2]
∂∂(321)%4else%2 %3comp%2[%4ad %3z%2, %4ad %4add %3z%2, %4add %4add %3z%2]%2]
∂∂(267)%3mapc%2[%3print%2, %3prog%2]
∂∂(267)%3outc%2[%5NIL%2, %5NIL%2]
∂∂(267)%3print%2 %2<%4ad %3z%2, %3length%2 %3prog%2>
∂∂(267)%3outc%2[%5T%2, %5NIL%2]%2]
∂∂(169)%4else%2 %3print%2 %3z
∂∂(153)%3go%2 %3loop
∂∂(85)%3done%2 %3outc%2[%5NIL%2, %5T%2]
∂∂(153)%3inc%2[%5NIL%2, %5T%2]
∂∂(153)%3return%2 %5ENDCOMP
∂∂(48)%3comp%2[%3fn%2, %3vars%2, %3exp%2]%2 %2←
∂∂(80)%2/{%3prup%2[%3vars%2, %51%2]%2, %3length%2 %3vars%2}%2[λ%3vpr%2, %3n%2.
∂∂(112)%3flat%2[%2<%2<%2<%5LAP%2, %3fn%2, %5SUBR%2>%2>%2,
∂∂(185)%3mkpush%2[%3n%2, %51%2]%2,
∂∂(185)%3compexp%2[%3exp%2, %2-%3n%2, %3vpr%2]%2,
∂∂(185)%3substack%2 %3n%2,
∂∂(185)%2(%2(%5POPJ%2 %5P%2)%2 %2(%5LABEL%2 %5NIL%2)%2)%2>%2,
∂∂(167)%5NIL%2]%2]
∂∂(48)%3substack%2 %3n%2 %2← %4if%2 %3n%2 %4eq %50%2 %4then%2 %5NIL%2 %4else%2 %2<%2<%5SUB%2, %5P%2, %2<%5C%2, %3n%2, %50%2, %3n%2, %50%2>%2>%2>
∂∂(48)%3prup%2[%3vars%2, %3n%2]%2 %2← %4if%2 %4n %3vars%2 %4then%2 %5NIL%2 %4else%2 %2[%4a %3vars%2 %2. %3n%2]%2 %2. %3prup%2[%4d %3vars%2, %3n%2 %2+ %51%2]
∂∂(48)%3mkpush%2[%3n%2, %3m%2]%2 %2← %4if%2 %3n%2 %2< %3m%2 %4then%2 %5NIL%2 %4else%2 %2<%5PUSH%2, %5P%2, %3m%2>%2 %2. %3mkpush%2[%3n%2, %3m%2 %2+ %51%2]
∂∂(48)%3compexp%2[%3exp%2, %3m%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3exp%2 %4then%2 %2(%2(%5MOVEI%2 %51%2 %50%2)%2)
∂∂(80)%4else if%2 %3exp%2 %4eq %5T%2 %2∨ %3numberp%2 %3exp%2 %4then%2 %2<%2<%5MOVEI%2, %51%2, %2<%5QUOTE%2, %3exp%2>%2>%2>
∂∂(80)%4else if%2 %4at %3exp%2 %4then%2 %2<%2<%5MOVE%2, %51%2, %3m%2 %2+ %4d %3assoc%2[%3exp%2, %3vpr%2]%2, %5P%2>%2>
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5CAR%2 %4then%2
∂∂(112)%2[%4if%2 %4at %4ad %3exp%2 %4then%2 %2<%2<%2 %2`%5HLRZ@%2' %2, %51%2, %3m%2 %2+ %4d %3assoc%2[%4ad %3exp%2, %3vpr%2]%2, %5P%2>%2>
∂∂(121)%4else%2 %2<%3compexp%2[%4ad %3exp%2, %3m%2, %3vpr%2]%2, %2(%2(%2 %2`%5HLRZ@%2' %2 %51%2 %51%2)%2)%2>%2]
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5CDR%2 %4then%2
∂∂(112)%2[%4if%2 %4at %4ad %3exp%2 %4then%2 %2<%2<%2 %2`%5HRRZ@%2' %2, %51%2, %3m%2 %2+ %4d %3assoc%2[%4ad %3exp%2, %3vpr%2]%2, %5P%2>%2>
∂∂(121)%4else%2 %2<%3compexp%2[%4ad %3exp%2, %3m%2, %3vpr%2]%2, %2(%2(%2 %2`%5HRRZ@%2' %2 %51%2 %51%2)%2)%2>%2]
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5AND%2 %2∨ %4a %3exp%2 %4eq %5OR%2 %2∨ %4a %3exp%2 %4eq %5NOT%2 %2∨ %4a %3exp%2 %4eq %5EQ%2 %4then%2
∂∂(112)%2/{%3gensym%2[]%2, %3gensym%2[]%2}%2[λ%3l1%2, %3l2%2.
∂∂(144)%2<%3combool%2[%3exp%2, %3m%2, %3l1%2, %5NIL%2, %3vpr%2]%2,
∂∂(162)%2<%2(%5MOVEI%2 %51%2 %2(%5QUOTE%2 %5T%2)%2)%2, %2<%5JRST%2, %50%2, %3l2%2>%2, %2<%5LABEL%2, %3l1%2>%2, %2(%5MOVEI%2 %51%2 %50%2)%2, %2<%5LABEL%2, %3l2%2>%2>%2>%2]
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5COND%2 %4then%2 %3comcond%2[%4d %3exp%2, %3m%2, %3gensym%2[]%2, %3vpr%2]
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5QUOTE%2 %4then%2 %2<%2<%5MOVEI%2, %51%2, %3exp%2>%2>
∂∂(80)%4else if%2 %4at %4a %3exp%2 %4then%2 %2<%3complisa%2[%4d %3exp%2, %3m%2, %3vpr%2]%2, %2<%2<%5CALL%2, %3length%2 %4d %3exp%2, %2<%5E%2, %4a %3exp%2>%2, %5S%2>%2>%2>
∂∂(80)%4else if%2 %4aa %3exp%2 %4eq %5LAMBDA%2 %4then%2
∂∂(112)%2/{%3length%2 %4d %3exp%2}%2[λ%3n%2.
∂∂(144)%2<%3stackup%2[%4d %3exp%2, %3m%2, %3vpr%2]%2,
∂∂(162)%3compexp%2[%4adda %3exp%2, %3m%2 %2- %3n%2, %3apend%2[%3prup%2[%4ada %3exp%2, %51%2 %2- %3m%2]%2, %3vpr%2]%2]%2,
∂∂(162)%3substack%2 %3n%2>%2]
∂∂(80)%4else if%2 %5T%2 %4then%2 %5NIL
∂∂(48)%3stackup%2[%3u%2, %3m%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %5NIL%2 %4else%2 %2<%3compexp%2[%4a %3u%2, %3m%2, %3vpr%2]%2, %2(%2(%5PUSH%2 %5P%2 %51%2)%2)%2, %3stackup%2[%4d %3u%2, %3m%2 %2- %51%2, %3vpr%2]%2>
∂∂(48)%3ccchain%2 %3exp%2 %2← %2[%4a %3exp%2 %4eq %5CAR%2 %2∨ %4a %3exp%2 %4eq %5CDR%2]%2 %2∧ %2[%4at %4ad %3exp%2 %2∨ %3ccchain%2 %4ad %3exp%2]
∂∂(48)%3compc%2[%3exp%2, %3n2%2, %3m%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4at %3exp%2 %4then%2 %3err%2 %5COMPC
∂∂(80)%4else if%2 %4a %3exp%2 %4eq %5CAR%2 %4then%2
∂∂(112)%2[%4if%2 %4at %4ad %3exp%2 %4then%2 %2<%2<%2 %2`%5HLRZ@%2' %2, %3n2%2, %3m%2 %2+ %4d %3assoc%2[%4ad %3exp%2, %3vpr%2]%2, %5P%2>%2>
∂∂(121)%4else%2 %2<%2 %2`%5HLRZ@%2' %2, %3n2%2, %3n2%2>%2 %2. %3compc%2[%4ad %3exp%2, %3n2%2, %3m%2, %3vpr%2]%2]
∂∂(80)%4else if%2 %4at %4ad %3exp%2 %4then%2 %2<%2<%2 %2`%5HRRZ@%2' %2, %3n2%2, %3m%2 %2+ %4d %3assoc%2[%4ad %3exp%2, %3vpr%2]%2, %5P%2>%2>
∂∂(80)%4else%2 %2<%2 %2`%5HRRZ@%2' %2, %3n2%2, %3n2%2>%2 %2. %3compc%2[%4ad %3exp%2, %3n2%2, %3m%2, %3vpr%2]
∂∂(48)%3comcond%2[%3u%2, %3m%2, %3l%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %2<%2<%5LABEL%2, %3l%2>%2>
∂∂(80)%4else if%2 %2¬%4at %4aa %3u%2 %2∧ %4aaa %3u%2 %4eq %5NULL%2 %2∧ %4n %4ada %3u%2 %4then%2
∂∂(112)%2<%3compexp%2[%4adaa %3u%2, %3m%2, %3vpr%2]%2, %2<%2<%5JUMPE%2, %51%2, %3l%2>%2>%2, %3comcond%2[%4d %3u%2, %3m%2, %3l%2, %3vpr%2]%2>
∂∂(80)%4else if%2 %4aa %3u%2 %4eq %5T%2 %4then%2 %2<%3compexp%2[%4ada %3u%2, %3m%2, %3vpr%2]%2, %2<%2<%5LABEL%2, %3l%2>%2>%2>
∂∂(80)%4else%2 %2/{%3gensym%2[]%2}%2[λ%3l1%2.
∂∂(112)%2<%3combool%2[%4aa %3u%2, %3m%2, %3l1%2, %5NIL%2, %3vpr%2]%2,
∂∂(130)%3compexp%2[%4ada %3u%2, %3m%2, %3vpr%2]%2,
∂∂(130)%2<%2<%5JRST%2, %50%2, %3l%2>%2, %2<%5LABEL%2, %3l1%2>%2>%2,
∂∂(130)%3comcond%2[%4d %3u%2, %3m%2, %3l%2, %3vpr%2]%2>%2]
∂∂(48)%3complisa%2[%3u%2, %3m%2, %3vpr%2]%2 %2←
∂∂(80)%2/{%3classify%2 %3u%2}%2[λ%3z%2.
∂∂(112)%2<%3complis%2[%3z%2, %3m%2, %51%2, %3vpr%2]%2, %3loadac%2[%3z%2, %51%2 %2- %3ccount%2 %3z%2, %51%2, %3m%2 %2- %3ccount%2 %3z%2, %3vpr%2]%2, %3substack%2 %3ccount%2 %3z%2>%2]
∂∂(48)%3ccount%2 %3z%2 %2← %4if%2 %4n %3z%2 %4then%2 %50%2 %4else if%2 %4aa %3z%2 %4eq %54%2 %4then%2 %51%2 %2+ %3ccount%2 %4d %3z%2 %4else%2 %3ccount%2 %4d %3z
∂∂(48)%3loadac%2[%3z%2, %3m2%2, %3n2%2, %3m%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3z%2 %4then%2 %5NIL
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %51%2 %4then%2
∂∂(112)%2<%5MOVE%2, %3n2%2, %3m%2 %2+ %4d %3assoc%2[%4da %3z%2, %3vpr%2]%2, %5P%2>%2 %2. %3loadac%2[%4d %3z%2, %3m2%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %50%2 %4then%2 %2<%5MOVEI%2, %3n2%2, %2<%5QUOTE%2, %4da %3z%2>%2>%2 %2. %3loadac%2[%4d %3z%2, %3m2%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %52%2 %4then%2 %2<%5MOVEI%2, %3n2%2, %4da %3z%2>%2 %2. %3loadac%2[%4d %3z%2, %3m2%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %53%2 %4then%2 %2<%3reverse%2 %3compc%2[%4da %3z%2, %3n2%2, %3m%2, %3vpr%2]%2, %3loadac%2[%4d %3z%2, %3m2%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]%2>
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %55%2 %4then%2 %3loadac%2[%4d %3z%2, %51%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]
∂∂(80)%4else%2 %2<%5MOVE%2, %3n2%2, %3m2%2, %5P%2>%2 %2. %3loadac%2[%4d %3z%2, %3m2%2 %2+ %51%2, %3n2%2 %2+ %51%2, %3m%2, %3vpr%2]
∂∂(48)%3complis%2[%3z%2, %3m%2, %3k%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3z%2 %4then%2 %5NIL
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %54%2 %4then%2 %2<%3compexp%2[%4da %3z%2, %3m%2, %3vpr%2]%2, %2(%2(%5PUSH%2 %5P%2 %51%2)%2)%2, %3complis%2[%4d %3z%2, %3m%2 %2- %51%2, %3k%2 %2+ %51%2, %3vpr%2]%2>
∂∂(80)%4else if%2 %4aa %3z%2 %4eq %55%2 %4then%2 %2<%3compexp%2[%4da %3z%2, %3m%2, %3vpr%2]%2, %4if%2 %3k%2 %4eq %51%2 %4then%2 %5NIL%2 %4else%2 %2<%2<%5MOVE%2, %3k%2, %51%2>%2>%2>
∂∂(80)%4else%2 %3complis%2[%4d %3z%2, %3m%2, %3k%2 %2+ %51%2, %3vpr%2]
∂∂(48)%3classify%2 %3u%2 %2← %3class2%2[%3class1%2[%3u%2, %5NIL%2]%2, %5NIL%2, %5T%2]
∂∂(48)%3class1%2[%3u%2, %3v%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %3v
∂∂(80)%4else if%2 %4at %4a %3u%2 %4then%2
∂∂(112)%2[%4if%2 %3equal%2[%4a %3u%2, %5NIL%2]%2 %2∨ %3equal%2[%4a %3u%2, %5T%2]%2 %2∨ %3numberp%2 %4a %3u%2 %4then%2 %3class1%2[%4d %3u%2, %2[%50%2 %2. %4a %3u%2]%2 %2. %3v%2]
∂∂(121)%4else%2 %3class1%2[%4d %3u%2, %2[%51%2 %2. %4a %3u%2]%2 %2. %3v%2]%2]
∂∂(80)%4else if%2 %3equal%2[%4aa %3u%2, %5QUOTE%2]%2 %4then%2 %3class1%2[%4d %3u%2, %2[%52%2 %2. %4a %3u%2]%2 %2. %3v%2]
∂∂(80)%4else if%2 %3ccchain%2 %4a %3u%2 %4then%2 %3class1%2[%4d %3u%2, %2[%53%2 %2. %4a %3u%2]%2 %2. %3v%2]
∂∂(80)%4else%2 %3class1%2[%4d %3u%2, %2[%54%2 %2. %4a %3u%2]%2 %2. %3v%2]
∂∂(48)%3class2%2[%3u%2, %3v%2, %3flg%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %3v
∂∂(80)%4else if%2 %3flg%2 %2∧ %4aa %3u%2 %4eq %54%2 %4then%2 %3class2%2[%4d %3u%2, %2[%55%2 %2. %4da %3u%2]%2 %2. %3v%2, %5NIL%2]
∂∂(80)%4else%2 %3class2%2[%4d %3u%2, %4a %3u%2 %2. %3v%2, %3flg%2]
∂∂(48)%3mkjrst%2 %3l%2 %2← %2<%2<%5JRST%2, %50%2, %3l%2>%2>
∂∂(48)%3combool%2[%3p%2, %3m%2, %3l%2, %3flg%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %3p%2 %4eq %5T%2 %4then%2 %2[%4if%2 %3flg%2 %4then%2 %3mkjrst%2 %3l%2 %4else%2 %5NIL%2]
∂∂(80)%4else if%2 %4at %3p%2 %4then%2 %2<%3compexp%2[%3p%2, %3m%2, %3vpr%2]%2, %2<%2<%4if%2 %3flg%2 %4then%2 %5JUMPN%2 %4else%2 %5JUMPE%2, %51%2, %3l%2>%2>%2>
∂∂(80)%4else if%2 %4a %3p%2 %4eq %5EQ%2 %4then%2
∂∂(112)%2<%3complisa%2[%4d %3p%2, %3m%2, %3vpr%2]%2, %4if%2 %3flg%2 %4then%2 %2(%2(%5CAMN%2 %51%2 %52%2)%2)%2 %4else%2 %2(%2(%5CAME%2 %51%2 %52%2)%2)%2, %3mkjrst%2 %3l%2>
∂∂(80)%4else if%2 %4a %3p%2 %4eq %5AND%2 %4then%2
∂∂(112)%2[%4if%2 %2¬%3flg%2 %4then%2 %3compandor%2[%4d %3p%2, %3m%2, %3l%2, %5NIL%2, %3vpr%2]
∂∂(121)%4else%2 %2/{%3gensym%2[]%2}%2[λ%3l1%2. %2<%3compandor1%2[%4d %3p%2, %3m%2, %3l1%2, %3l%2, %5NIL%2, %3vpr%2]%2, %2<%2<%5LABEL%2, %3l1%2>%2>%2>%2]%2]
∂∂(80)%4else if%2 %4a %3p%2 %4eq %5OR%2 %4then%2
∂∂(112)%2[%4if%2 %3flg%2 %4then%2 %3compandor%2[%4d %3p%2, %3m%2, %3l%2, %5T%2, %3vpr%2]
∂∂(121)%4else%2 %2/{%3gensym%2[]%2}%2[λ%3l1%2. %2<%3compandor1%2[%4d %3p%2, %3m%2, %3l1%2, %3l%2, %5T%2, %3vpr%2]%2, %2<%2<%5LABEL%2, %3l1%2>%2>%2>%2]%2]
∂∂(80)%4else if%2 %4a %3p%2 %4eq %5NOT%2 %4then%2 %3combool%2[%4ad %3p%2, %3m%2, %3l%2, %2¬%3flg%2, %3vpr%2]
∂∂(80)%4else if%2 %4a %3p%2 %4eq %5NULL%2 %4then%2
∂∂(112)%2<%3compexp%2[%4ad %3p%2, %3m%2, %3vpr%2]%2, %2<%2<%4if%2 %3flg%2 %4then%2 %5JUMPE%2 %4else%2 %5JUMPN%2, %51%2, %3l%2>%2>%2>
∂∂(80)%4else%2 %2<%3compexp%2[%3p%2, %3m%2, %3vpr%2]%2, %2<%2<%4if%2 %3flg%2 %4then%2 %5JUMPN%2 %4else%2 %5JUMPE%2, %51%2, %3l%2>%2>%2>
∂∂(48)%3compandor%2[%3u%2, %3m%2, %3l%2, %3flg%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %5NIL%2 %4else%2 %2<%3combool%2[%4a %3u%2, %3m%2, %3l%2, %3flg%2, %3vpr%2]%2, %3compandor%2[%4d %3u%2, %3m%2, %3l%2, %3flg%2, %3vpr%2]%2>
∂∂(48)%3compandor1%2[%3u%2, %3m%2, %3l%2, %3l2%2, %3flg%2, %3vpr%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %3mkjrst%2 %3l2
∂∂(80)%4else if%2 %4n %4d %3u%2 %4then%2 %3combool%2[%4a %3u%2, %3m%2, %3l2%2, %2¬%3flg%2, %3vpr%2]
∂∂(80)%4else%2 %2<%3combool%2[%4a %3u%2, %3m%2, %3l%2, %3flg%2, %3vpr%2]%2, %3compandor1%2[%4d %3u%2, %3m%2, %3l%2, %3l2%2, %3flg%2, %3vpr%2]%2>
∂∂(48)%3flat%2[%3u%2, %3s%2]%2 %2←
∂∂(80)%4if%2 %4n %3u%2 %4then%2 %3s
∂∂(80)%4else if%2 %4n %4a %3u%2 %4then%2 %3flat%2[%4d %3u%2, %3s%2]
∂∂(80)%4else if%2 %4a %3u%2 %4eq %5LABEL%2 %4then%2 %4ad %3u%2 %2. %3s
∂∂(80)%4else if%2 %4at %4a %3u%2 %4then%2 %3u%2 %2. %3s
∂∂(80)%4else%2 %3flat%2[%4a %3u%2, %3flat%2[%4d %3u%2, %3s%2]%2]
.END